Fork me on GitHub

Java 8 底层源码

注意:所有文章除特别说明外,转载请注明出处.

[TOC]

函数式接口

Collectors 源码

groupingBy()

groupingByConcurrent()

partitioningBy()

Stream 源码

在Stream中提供了三个原生的流(IntStream | LongStream | DoubleStream)是为了避免不必要的装箱和拆箱操作。

集合主要关注的是对于数据的管理和存储,而流主要关注的是对元素之间的计算。

stream pipeline(流管道)可以看做是对于流源的一种查询,除非该流被显示的设计成可以并发修改的。

流只能被操作一次。否则会抛出异常。然有些流操作会返回接收者,不是新的流对象。

流对于是并行或串行可以通过方法(sequential() - 串行 | parallel() - 并行)来进行修改。还可以通过isParallel()方法查询该流是否是并行的。

AutoCloseable

在该接口中只提供一个close()方法,在实现该接口之后的应用会自动关闭。

BaseStream

Spliterator spliterator()

该方法被称为分割迭代器(类似于Iterator),是流的一个终止操作。迭代流中的元素。

iterator()

返回迭代器,对流中的数据进行迭代。

S sequential()

S parallel()

S onClose(Runnable closeHandler)

关闭处理器方法,流中的close()方法被调用的时候,该处理器才会被调用,调用的顺序是按照添加的顺序从先到后调用。

close()

该方法是重写AutoCloseable接口中的方法。

提示:CopyAndReadArrayList 是将底层的数据重新复制一份,在新的复制的一份数据上进行操作。其适用的场景是读多写少的场景。

本文标题:Java 8 底层源码

文章作者:Bangjin-Hu

发布时间:2019年10月15日 - 09:22:26

最后更新:2020年03月30日 - 08:08:25

原始链接:http://bangjinhu.github.io/undefined/JDK 8 底层源码/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Bangjin-Hu wechat
欢迎扫码关注微信公众号,订阅我的微信公众号.
坚持原创技术分享,您的支持是我创作的动力.